package com.xbongbong.sso.service;

import com.xbongbong.paas.toolbox.exception.XbbException;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.sso.pojo.dto.OauthCustomParamAddDTO;
import com.xbongbong.sso.pojo.dto.OauthCustomParamDeleteDTO;
import com.xbongbong.sso.pojo.dto.OauthCustomParamDetailDTO;
import com.xbongbong.sso.pojo.dto.OauthCustomParamListDTO;
import com.xbongbong.sso.pojo.dto.OauthCustomParamUpdateDTO;
import com.xbongbong.sso.pojo.dto.OauthFieldListDTO;
import com.xbongbong.sso.pojo.dto.OauthSyntaxCheckDTO;
import com.xbongbong.sso.pojo.vo.OauthCustomParamAddVO;
import com.xbongbong.sso.pojo.vo.OauthCustomParamDetailVO;
import com.xbongbong.sso.pojo.vo.OauthCustomParamListVO;
import com.xbongbong.sso.pojo.vo.OauthCustomParamUpdateVO;
import com.xbongbong.sso.pojo.vo.OauthFieldListVO;
import com.xbongbong.sso.pojo.vo.OauthFunctionlistVO;

/**
 * 授权自定义参数
 * 创建时间 2020/12/15 10:48 AM
 * 修改时间 2020/12/15 10:48 AM
 * @author chy
 */
public interface OauthCustomParamService {

    /**
     * 授权自定义参数列表
     * @param oauthCustomParamListDTO
     * @return
     * @throws XbbException
     */
    OauthCustomParamListVO list(OauthCustomParamListDTO oauthCustomParamListDTO) throws XbbException;

    /**
     * 字段列表
     * @param oauthFieldListDTO
     * @return
     * @throws XbbException
     */
    OauthFieldListVO fieldlist(OauthFieldListDTO oauthFieldListDTO) throws XbbException;

    /**
     * 函数列表
     * @return
     * @throws XbbException
     */
    OauthFunctionlistVO functionlist() throws XbbException;

    /**
     * 授权自定义参数详情
     * @param oauthCustomParamDetailDTO
     * @return
     */
    OauthCustomParamDetailVO detail(OauthCustomParamDetailDTO oauthCustomParamDetailDTO) throws XbbException;

    OauthCustomParamAddVO add(OauthCustomParamAddDTO oauthCustomParamAddDTO) throws XbbException;

    OauthCustomParamUpdateVO update(OauthCustomParamUpdateDTO oauthCustomParamUpdateDTO) throws XbbException;

    BaseVO syntaxCheck(OauthSyntaxCheckDTO oauthSyntaxCheckDTO) throws XbbException;

    BaseVO delete(OauthCustomParamDeleteDTO oauthCustomParamDeleteDTO) throws XbbException;
}
